#pragma once
class IObserver;
class BaseMessageInfo;
class ISubject {
public:
	virtual ~ISubject() {};
	virtual void Attach(IObserver* observer) = 0;
	virtual void Detach(IObserver* observer) = 0;
	virtual void Notify() = 0;
	virtual void Notify(BaseMessageInfo* Data) = 0;
	virtual void SetChanged() = 0;
};

class BaseMessageInfo
{
};